import { login, updateDetailInfo } from '@/api/user.js'

// 状态
const state = {
  token: '',
  userInfo: {}, // 用户信息
  userDetailInfo: {}// 存储用户详细信息
}
// 修改状态
const mutations = {
  // 设置token
  setToken (state, data) {
    state.token = data
  },
  // 设置用户信息
  setUserInfo (state, userInfo) {
    state.userInfo = userInfo
  },
  // 设置用户详细信息
  setuserDetailInfo (state, userDetail) {
    state.userDetailInfo = userDetail
  },
  // 退出登录
  logout (state) {
    // 删除缓存
    state.token = null // 删除vuex的token
    state.userInfo = {} // 删除用户信息
    state.userDetailInfo = {}// 删除用户详细信息
  }

}
// 执行异步
const actions = {
  // 登录
  async login (context, user) {
    const { data } = await login(user)
    if (data.status === 400) {
      return Promise.reject(data)
    }
    context.commit('setToken', data.token)
    context.commit('setUserInfo', user)
    context.commit('setuserDetailInfo', data.data)
  },
  // 更新用户信息
  async updateUserInfo (context, userInfo) {
    const { password, ...aaa } = userInfo
    const data = await updateDetailInfo(aaa)
    if (data.status === 400) {
      return Promise.reject(data)
    }
    context.commit('setuserDetailInfo', userInfo)
    // console.log(data)
  }
}
export default {
  namespaced: true,
  state,
  mutations,
  actions
}
